home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / os2 / forth038.arj / NOTES.DOC < prev    next >
Text File  |  1994-01-20  |  10KB  |  276 lines

  1.  
  2.   **************************** Authors Notes ******************************
  3.  
  4.  
  5.   This is my first attempt at doing OS/2 Full Screen, FLAT32 code.
  6.  
  7.   It was written using the editor from Borland's Turbo Pascal 6.0+7.0
  8.  
  9.   It is compiled using MicroSoft's MASM version 6.0
  10.  
  11.   It was linked using LINK386 supplied with IBM's OS/2 version 2.1
  12.  
  13.   This program requires OS/2 version 2.0 or later, and is designed
  14.   strictly for full screen text mode.
  15.  
  16.   The source for this fine program is included. I would like to offer
  17.   my thanks for those who helped contribute code.
  18.  
  19.   ************************* MODIFICATION HISTORY ***********************
  20.  
  21.   This document was last updated January 20,1994
  22.  
  23.   Current Priorities: (01/20/94)
  24.     1. dpANS compliance, at least with CORE vocabulary
  25.     2. Floating Point
  26.     3. Manual & Documentation
  27.     4. More examples, especially with Multi-Threading
  28.  
  29. Version 0.38ßeta
  30. 01/20/94 - MAW Fix Thread in compile mode, more extensive testing
  31.                Change addresses to new location
  32.                Update copyrights
  33.  
  34. 01/19/94 - MAW Fix Thread and ThreadProc
  35.                Add Version
  36.  
  37. Version 0.37ßeta
  38. 11/14/93 - MAW Add PAUSE, and ?CR-MORE, modify WORDS to PAUSE after a
  39.                screenfull. I couldn't see what was zipping by. ;-)
  40.                Had to modify Forth.Ini, and turn off some safeties to get
  41.                  test program to run. Not complete yet, but much better.
  42.  
  43.                Add FM/MOD and SM/REM, fixed UM/MOD, */ */MOD
  44.                Fix >BODY and DOES>
  45.  
  46. 10/23/93 - MAW Start dpANS 5 compliance checks,
  47.                Fix 2!, 2@ (wrong word order), see COMPLY.DOC
  48.  
  49. Version 0.36ßeta
  50. 10/14/93 - MAW Fix broken POSTPONE
  51.                Rename COMPILECALL to COMPILE, to match standard
  52.                Add :NONAME, and update FORTH.INI to match
  53.  
  54. Version 0.35ßeta
  55.  8/07/93 - MAW Decide to release SOURCE with shareware distribution to
  56.                encourage more OS/2 assembler programmers.
  57.                Create a BUILDIT.CMD file for OS/2 2.1 compilation
  58.                  (Link386 no longer works in a DOS box!)
  59.                Make all version number 0.35 instead of 0.035
  60.  
  61. Version 0.34ßeta
  62.   7/23/93 - Include missing PORTIO.DLL 
  63. Version 0.33ßeta
  64.  7/16/93 - MAW Finally get CIN and COUT working, thanks to sample code
  65.                from PORTIO by Michael Thompson - tommy@msc.cornell.edu
  66.  
  67.  7/08/93 - MAW Fix a bug in Include" in forth.ini, bump revision to 0.032
  68.                Because of debugging problems, add NOP
  69.                Add <EXECUTE>, 'EXECUTE to allow for revectoring
  70.                Need to re-establish USER variables, so that THREADS work
  71.  
  72.  7/07/93 - MAW Now have access to a debugger, fix FORTH.INI's "
  73.                Dir (which broke with 0.030) now works again.
  74.  
  75.  6/30/93 - MAW Got interpreter working again, needs a lot of work.
  76.                I NEED A DEBUGGER for OS/2
  77.                (Code works, somewhat acceptably- now using OS/2 v2.1)
  78.  
  79.  6/29/93 - MAW Big revision to help get to dp-ANS standards for the CORE
  80.            vocabulary.
  81.  
  82.  6/ 7/93 - MAW Added  SOURCE, S"
  83.  
  84.  Version 0.29ßeta
  85.  5/12/93 - BBM Added  ACCEPT  ALIGN  ALIGNED  CHAR  CHARS  CHAR+
  86.                       UNLOOP  [']  [CHAR]  2@  2!  2*  2/  2OVER  2SWAP
  87.                       S"  S>D  UM/MOD  UM*  M*  INVERT  POSTPONE
  88.  
  89.            Renamed or redefined (to conform to ANS Standard):
  90.                       CELL+  CELLS  CELL  LSHIFT  RSHIFT  MOVE  '
  91.                       CASE..OF..ENDOF..ENDCASE
  92.            Fixed other various problems.
  93.  
  94.  Version 0.28ßeta
  95.  5/12/93 - MAW Add more floating point words, update documentation
  96.  
  97.  Version 0.27ßeta
  98.  5/11/93 - MAW First version of F. working, needs polish.
  99.  
  100.  Version 0.26ßeta
  101.  4/28/93 - MAW Rename Delay to MS, there are going to be a lot of
  102.                changes to make this ANS compliant
  103.                START adding floating point core words
  104.  
  105.  4/27/93 - MAW Recieved dpANS draft from Brian Mathewson
  106.  
  107.  4/21/93 - MAW Modify valuetable to work up to base 36, test mods
  108.                Modify AutoLoad to scan environment for directory to
  109.                  load forth.ini from.
  110.                Add Environment and Commandline functions
  111.  
  112.  3/23/93 - MAW Incorporate changes from Brian, bump to version 0.25ßeta
  113.    Nearing version 1.0 (5/12/93 - HA!)
  114.  
  115.  3/15/93 - MAW
  116.    Find Ordinal value for DOS32KillThread
  117.    Add word DELAY, similar to TP7 definition.
  118.    Modify threads.4th definition of KillThread so that it works.
  119.    Tested against bunny, looks good.
  120.  
  121.  3/12/93 - MAW
  122.    Fix hard to find bug: had CODEDEF in instruction stream!
  123.    Fix EqualStr ="
  124.    Modify LookFor to use EqualStr. (Works well)
  125.    Make DumpRegisters a FORTH word, with a nice little header to show
  126.      which register is which, and do it all in HEX!
  127.  
  128.  3/11/93 - Version 0.022 - Mike's revisions
  129.    Rearrange source, eliminate DoHeader macro, start recoding routines
  130.    to be re-entrant, and use ESI (or EBP) as a local storage pointer.
  131.  
  132.  2/ 7/93 - Version 0.021 - Brians revisions...
  133.  
  134.  1/15/93 -
  135.    Add \ for whole line comments ( zero's ecx! )
  136.  
  137.  1/15/93 - Version 0.019
  138.    Add pointers to LoadModule, FreeModule, QueryModule, QueryProcAddr,
  139.      QueryProcType, ExecPgm, StartSession
  140.    (Need to start building vocabularies!)
  141.  
  142.    Add Shell and CommandShell to Forth.ini
  143.  
  144.  1/15/93 - Version 0.018
  145.    Correct problems with GETKEY. Forth/2 now works properly in a window.
  146.  
  147.    New routine (KEY), needs a parameter (0 = wait, 1 = NO wait)
  148.    Now have (KEY), KEY, KEYnoWAIT
  149.    Add RECURSE
  150.    Add FENCE to FORGET in Forth.ini
  151.  
  152.  1/14/93 - Version 0.017
  153.    Modify code in DP! to work better. Improve behavior of ' when word is
  154.    NOT found. Add FORGET to Forth.Ini
  155.    Rename to FORTH/2
  156.  
  157.  1/14/93 - More 0.016
  158.    Add sample code to FORTH.INI that uses SYSCALL and the constants provided
  159.    to OPEN, CLOSE, read and write files.
  160.  
  161.  1/13/93 - More 0.016
  162.    Add U*/MOD, revise */MOD to do an IDIV instead of DIV....
  163.    Add ?COMPILE, [COMPILE], ', and DOES>
  164.      Tested, appear to work.
  165.  
  166.  1/12/93 - Version 0.016
  167.    Modify meaning of SP! to comply with standards, rename S0 to SP0
  168.    Add RP0, RP@, RP!, R@
  169.  
  170.  1/11/93 - Version 0.015
  171.    Fix /MOD and */MOD, left results in wrong order
  172.    Fix >,>=,<,<= they all used UNSIGNED math, which is INCORRECT
  173.    Add HERE,DP! for dictionary access
  174.    Add " for strings
  175.    Add Test routines SYS$BEEP (returns address of DOS32BEEP)
  176.      and SYSCALL (Call an OS/2 routine)
  177.  
  178.  1/ 7/93 - Version 0.014
  179.    Remove duplicate AND,OR,XOR
  180.    Add Brians */ (Works well!)
  181.    Add /MOD, */MOD, ABS, NEGATE, MIN, MAX, TYPE, FOPEN, FCLOSE, FREAD,
  182.        TIB, #TIB, SPAN, EXPECT, QUERY, INTERPRET, PROMPT, AUTOLOAD
  183.    Add TESTMAIN - A test version of the main loop
  184.    (Wow - 7 Hours Straight!)
  185.    AutoLoad feature works. - Loads definitions (up to 16k) from FORTH.INI
  186.  
  187.  1/ 5/93 - Version 0.013
  188.    Fix / MOD and U/, add StackCheck before prompt.
  189.  
  190.  1/ 4/93 - Version 0.012
  191.    Add <,>,<=,>=,=,<>
  192.  
  193.  1/ 4/93 - Version 0.011
  194.    Fix bug in LOOP which dropped 1 too many stack values
  195.  
  196.  1/ 1/93 - Version 0.010
  197.    Add MASM macros PushForth, PullForth, and Compiles
  198.    Add FOR/NEXT, which is a much better DO ... LOOP
  199.    Add DO ... LOOP and IF ... ELSE ... THEN
  200.  
  201. 12/31/92 - Version 0.009
  202.    Add CONSTANT, CREATE, VARIABLE, ALLOT, "," and "C," and the supporting
  203.    routines DoesConstant and DoesVariable
  204.    (Need to have places to put file handles, etc)
  205.    ** Look for version 0.010 to have conditional branching...
  206.  
  207. 11/13/92 - Version 0.008
  208.    Make literal, Compile Only, and Immediate
  209.    Add COMPILE, the ultimate in sneaky forth words
  210.    Fix CR
  211.  
  212. 11/10/92 - Version 0.007
  213.    Add Brian Mathewson's code for SP!, [, and ]
  214.    Add header for ?STACK
  215.    Make LITERAL an Immediate word
  216.    Add RESET, improve logic
  217.  
  218. 11/08/92 - Version 0.006
  219.    Add new words:
  220.      ROT, .S, MOD, ( comments ), IMMEDIATE, ." show string",
  221.      CRLF, DEBUG ( a debugging variable )
  222.  
  223.  
  224. 11/08/92 - Version 0.005
  225.    Add new macro CodeDef, to make maintenance easier
  226.  
  227.    Add new words:
  228.      OVER, DROP, W, S0, SP@, DEPTH, C@, C!, W@, W!, STATE
  229.  
  230.    Current Vocabulary:
  231.      OVER DROP W S0 SP@ DEPTH SWAP DUP .
  232.      HEX DECIMAL BASE W! W@ C! C@ ! @
  233.      XOR OR AND U/ U* / * - + STATE
  234.      : ; COMPILECALL LITERAL
  235.      EMIT KEY BYE VLIST
  236.  
  237.    Note: KEY returns the ascii code in the low byte, and the scan code
  238.    in the upper byte. This is not standard, but it does allow the use
  239.    of F1-F10, etc.
  240.  
  241.  
  242. 10/12/92 - Version 0.004
  243.    Fix bugs:
  244.       Error handling routine got contents of stack, instead of address
  245.       Correct handling of IMMEDIATE definitions
  246.  
  247.    Add EMIT - Uses VioWrtTTY, and not STDOUT
  248.      * Thanks to Larry Bank for his VIO32.ASM sample program.
  249.        I only wish I had that sooner.
  250.      * Emit makes it possible to use ANSI strings to set colors for output
  251.  
  252.    I will soon add GotoXY, GetXY and ClrScr....!
  253.   Current Vocabulary:
  254.     : ; COMPILECALL LITERAL KEY HEX DECIMAL BASE ! @ BYE VLIST
  255.     SWAP DUP XOR OR AND U/ U* / * - + .
  256.  
  257.  
  258. 10/08/92 - Version 0.003
  259.    Add code to do handle compiling constants, etc.
  260.    Add : ; LITERAL and COMPILECALL to vocabulary
  261.  
  262.    Add internal routine to dump registers, when needed for debugging.
  263.  
  264.    Add a real set of legal disclaimers to documentation.
  265.  
  266.  
  267.  
  268. 10/07/92 - Version 0.002
  269.  
  270.    Finally figure out how to get a keystroke from OS/2
  271.    (No help from IBM what so ever!)
  272.  
  273.    Add KEY to vocabulary list (Whew)
  274.  
  275.  
  276.